#ifndef __Skygen_StaticSkyboxGenerator_h__
#define __Skygen_StaticSkyboxGenerator_h__

#include "Skygen/SkyboxGenerator.h"
#include "Skygen/ImprovedPerlinNoise.h"

namespace Orca {

	class TStaticSkyboxGenerator : public ISkyboxGenerator {

	public:
		TStaticSkyboxGenerator();
		virtual ~TStaticSkyboxGenerator();

		virtual Str getVertexProgramFilename();
		virtual Str getFragmentProgramFilename();
		virtual vec4 computeSkyboxColor(const vec3 &dir, int size);
		virtual void updateShaderConstants(Shader *shader);
		virtual void step(float dt);

	private:
		TImprovedPerlinNoise<float> mIPN;

		vec3 skyClr;
		vec3 skyClr2;
		vec3 horzClr;
		vec3 cloudLightClr;
		vec3 cloudDarkClr;
		vec3 sunClr;

		float _getNoise(const vec3 &dir);
	};
}

#endif	// __Skygen_StaticSkyboxGenerator_h__